(include "././hset/class.inc")

(def-class hmap hset
	(dec-method :vtable class/hmap/vtable)
	(dec-method :deinit class/hmap/deinit :override)
	(dec-method :create class/hmap/create)
	(dec-method :init class/hmap/init)
	(dec-method :find class/hmap/find)
	(dec-method :each class/hmap/each)
	(dec-method :copy class/hmap/copy :static (:r0 :r1) (:r0 :r1))
	(dec-method :resize class/hmap/resize :static (:r0 :r1) (:r0))
	(dec-method :list class/hmap/list :static (:r0) (:r0 :r1))
	(dec-method :insert class/hmap/insert :static (:r0 :r1 :r2) (:r0 :r1 :r2))
	(dec-method :search class/hmap/search :static (:r0 :r1) (:r0 :r1 :r2))
	(dec-method :set class/hmap/set :static (:r0 :r1 :r2) (:r0 :r1))
	(dec-method :get class/hmap/get :static (:r0 :r1) (:r0 :r1))
	(dec-method :set_parent class/hmap/set_parent :static (:r0 :r1) (:r0))
	(dec-method :lisp_env class/hmap/lisp_env :static (:r0 :r1) (:r0 :r1))
	(dec-method :lisp_def class/hmap/lisp_def :static (:r0 :r1) (:r0 :r1))
	(dec-method :lisp_defq class/hmap/lisp_defq :static (:r0 :r1) (:r0 :r1))
	(dec-method :lisp_set class/hmap/lisp_set :static (:r0 :r1) (:r0 :r1))
	(dec-method :lisp_setq class/hmap/lisp_setq :static (:r0 :r1) (:r0 :r1))
	(dec-method :lisp_get class/hmap/lisp_get :static (:r0 :r1) (:r0 :r1))
	(dec-method :lisp_defx class/hmap/lisp_defx :static (:r0 :r1) (:r0 :r1))
	(dec-method :lisp_undef class/hmap/lisp_undef :static (:r0 :r1) (:r0 :r1))
	(dec-method :lisp_parent class/hmap/lisp_penv :static (:r0 :r1) (:r0 :r1))
	(dec-method :lisp_list class/hmap/lisp_tolist :static (:r0 :r1) (:r0 :r1))
	(dec-method :lisp_resize class/hmap/lisp_resize :static (:r0 :r1) (:r0 :r1)))

(def-struct hmap hset_size
	(ptr parent))
